﻿//#include <iostream>
//#include <map>
//using  namespace std;
//
//int main()
//{
//	int j = 0;
//
//	// 右边初始化自动推导类型
//	auto i = 0;
//	map<std::string, int> dict;
//
//
//	std::map<std::string, int>::iterator it = dict.begin();
//    //上下两句代码等价 auto 可以替代写起来比较长的代码 简化定义
//	auto it = dict.begin();
//
//	return 0;
//}
//



// 2 ——————————
//
//#include <iostream>
//using  namespace std;
//
//typedef char* pstring;
//int main()
//{
//	const pstring p1;   // 编译成功还是失败？
//
//	const pstring* p2;  // 编译成功还是失败？
//	return 0;
//}


//// 3 ————————
//#include <iostream>
//using  namespace std;
//
//int TestAuto()
//{
//	return 10;
//}
//int main()
//{
//	int a = 10;
//	auto b = a;
//	auto c = 'a';
//	auto d = TestAuto();
//	cout << typeid(b).name() << endl;
//	cout << typeid(c).name() << endl;
//	cout << typeid(d).name() << endl;
//	//auto e; 无法通过编译，使用auto定义变量时必须对其进行初始化
//	return 0;
//}



//// 4 ——————————————
//#include <iostream>
//using  namespace std;
//int main()
//{
//	int x = 10;
//	auto a1 = x;
//	auto a2 = &x;
//
//	// 指定必须是指针
//	auto* b = &x;
//	// 引用
//	auto& c = x;
//}